package com.promise.jokerdream.response.parser

import org.jsoup.Jsoup

/**
 * 好友挑战XML解析器
 * 专门用于解析大乐斗好友挑战相关的XML数据
 * 基于Jsoup实现
 */
class FightFriendXmlParser : BaseXmlParser<String>() {
    
    /**
     * 解析好友挑战XML数据
     * @param xmlString XML字符串
     * @return 解析结果
     */
    fun parseFightFriendXml(xmlString: String): XmlParseResult<String> {
        return parseXml(xmlString)
    }
    
    /**
     * 实现基类的具体解析逻辑
     * @param xmlString XML字符串
     * @return 解析后的好友挑战数据
     */
    override fun doParse(xmlString: String): String {
        return try {
            // 统一替换<br />为<br/>，确保Jsoup能正确识别
            val normalizedXml = xmlString.replace(Regex("<br\\s*/?>"), "<br/>")
            val doc = Jsoup.parse(normalizedXml)
            val divElement = doc.selectFirst("div#id")
            
            if (divElement != null) {
                // 获取HTML内容
                val html = divElement.html()
                
                // 直接使用<br/>进行分割
                val parts = html.split(Regex("<br\\s*/?>"))
                
                // 取第一个和第二个<br/>中间的文案（索引1）
                if (parts.size >= 2) {
                    val content = parts[1].trim()
                    // 移除HTML标签，只保留文本
                    val doc = Jsoup.parse(content)
                    return doc.text().trim()
                } else {
                    "未知错误"
                }
            } else {
                "未知错误"
            }
        } catch (e: Exception) {
            "未知错误"
        }
    }
}